package org.dromara.llm.llm.memory;

import org.dromara.common.core.domain.model.LoginUser;
import org.dromara.llm.domain.SysMessage;
import org.dromara.llm.domain.vo.SysMessageVo;

import java.util.List;

/**
 * 聊天记忆接口
 * 负责管理聊天历史记录
 */
public interface ChatMemory {

    /**
     * 添加消息到历史记录
     *
     * @param sender      发送者
     * @param content     内容
     * @param messageType 消息类型
     */
    void addMessage(String sender, String content, String messageType, String audioPath, LoginUser loginUser);

    int addMessage(SysMessageVo messageVo, String ttsFlag);

    /**
     * 获取历史消息
     *
     * @param deviceId    设备ID
     * @param messageType 指定查询的消息类型 - 传null查所有消息
     * @param limit       消息数量限制
     * @return 历史消息列表
     */
    List<SysMessage> getMessages(String deviceId, String messageType, Integer limit);

}
